<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>对数组进行排序</title>
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-base.css" />
<link media="all" rel="stylesheet" type="text/css" href="styles/03e73060321a0a848018724a6c83de7f-theme-medium.css" />

 </head>
 <body class="docs"><div class="navbar navbar-fixed-top">
  <div class="navbar-inner clearfix">
    <ul class="nav" style="width: 100%">
      <li style="float: left;"><a href="array.constants.html">« 预定义常量</a></li>
      <li style="float: right;"><a href="ref.array.html">数组 函数 »</a></li>
    </ul>
  </div>
</div>
<div id="breadcrumbs" class="clearfix">
  <ul class="breadcrumbs-container">
    <li><a href="index.html">PHP Manual</a></li>
    <li><a href="book.array.html">数组</a></li>
    <li>对数组进行排序</li>
  </ul>
</div>
<div id="layout">
  <div id="layout-content"><div id="array.sorting" class="chapter">
 <h1>对数组进行排序</h1>

 <p class="para">
  PHP 有一些用来排序数组的函数，
  这个文档会把它们列出来。
 </p>
 <p class="para">
  主要区别有：
 </p>
 <p class="para">
  <ul class="simplelist">
   <li class="member">
    有些函数基于 <span class="type">array</span> 的键来排序，
    而其他的基于值来排序的：<code class="literal">$array[&#039;key&#039;] = &#039;value&#039;;</code>。
   </li>
   <li class="member">
    排序之后键和值之间的关联关系是否能够保持，
    是指排序之后数组的键可能
    会被重置为数字型的（0,1,2 ...）。
   </li>
   <li class="member">
    排序的顺序有：字母表顺序， 升序（由低到高），
    降序（由高到低），数字排序，自然排序，随机顺序或者用户自定义排序。
   </li>
   <li class="member">
    注意：下列的所有排序函数都是直接作用于数组本身，
    而不是返回一个新的有序的数组。
   </li>
   <li class="member">
    以下函数对于数组中相等的元素，会保留原有的排序。
    在 PHP 8.0.0 之前，它们排序后的顺序是未定义的（也即相等元素之间的顺序是不稳定的）。
   </li>
  </ul>
 </p>
 <p class="para">
  <table class="doctable table">
   <caption><strong>排序函数属性</strong></caption>
   
    <thead>
     <tr>
      <th>函数名称</th>
      <th>排序依据</th>
      <th>数组索引键保持</th>
      <th>排序的顺序</th>
      <th>相关函数</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td><span class="function"><a href="function.array-multisort.html" class="function">array_multisort()</a></span></td>
      <td>值</td>
       <td><span class="type">string</span> 键保持不变，<span class="type">int</span> 键重新索引</td>
      <td>第一个数组或者由选项指定</td>
      <td><span class="function"><a href="function.array-walk.html" class="function">array_walk()</a></span></td>
     </tr>

     <tr>
      <td><span class="function"><a href="function.asort.html" class="function">asort()</a></span></td>
      <td>值</td>
      <td>是</td>
      <td>升序</td>
      <td><span class="function"><a href="function.arsort.html" class="function">arsort()</a></span></td>
     </tr>

     <tr>
      <td><span class="function"><a href="function.arsort.html" class="function">arsort()</a></span></td>
      <td>值</td>
      <td>是</td>
      <td>降序</td>
      <td><span class="function"><a href="function.asort.html" class="function">asort()</a></span></td>
     </tr>

     <tr>
      <td><span class="function"><a href="function.krsort.html" class="function">krsort()</a></span></td>
      <td>键</td>
      <td>是</td>
      <td>降序</td>
      <td><span class="function"><a href="function.ksort.html" class="function">ksort()</a></span></td>
     </tr>

     <tr>
      <td><span class="function"><a href="function.ksort.html" class="function">ksort()</a></span></td>
      <td>键</td>
      <td>是</td>
      <td>升序</td>
      <td><span class="function"><a href="function.krsort.html" class="function">krsort()</a></span></td>
     </tr>

     <tr>
      <td><span class="function"><a href="function.natcasesort.html" class="function">natcasesort()</a></span></td>
      <td>值</td>
      <td>是</td>
      <td>自然排序，大小写不敏感</td>
      <td><span class="function"><a href="function.natsort.html" class="function">natsort()</a></span></td>
     </tr>

     <tr>
      <td><span class="function"><a href="function.natsort.html" class="function">natsort()</a></span></td>
      <td>值</td>
      <td>是</td>
      <td>自然排序</td>
      <td><span class="function"><a href="function.natcasesort.html" class="function">natcasesort()</a></span></td>
     </tr>

     <tr>
      <td><span class="function"><a href="function.rsort.html" class="function">rsort()</a></span></td>
      <td>值</td>
      <td>否</td>
      <td>降序</td>
      <td><span class="function"><a href="function.sort.html" class="function">sort()</a></span></td>
     </tr>

     <tr>
      <td><span class="function"><a href="function.shuffle.html" class="function">shuffle()</a></span></td>
      <td>值</td>
      <td>否</td>
      <td>随机</td>
      <td><span class="function"><a href="function.array-rand.html" class="function">array_rand()</a></span></td>
     </tr>

     <tr>
      <td><span class="function"><a href="function.sort.html" class="function">sort()</a></span></td>
      <td>值</td>
      <td>否</td>
      <td>升序</td>
      <td><span class="function"><a href="function.rsort.html" class="function">rsort()</a></span></td>
     </tr>

     <tr>
      <td><span class="function"><a href="function.uasort.html" class="function">uasort()</a></span></td>
      <td>值</td>
      <td>是</td>
      <td>由用户定义</td>
      <td><span class="function"><a href="function.uksort.html" class="function">uksort()</a></span></td>
     </tr>

     <tr>
      <td><span class="function"><a href="function.uksort.html" class="function">uksort()</a></span></td>
      <td>键</td>
      <td>是</td>
      <td>由用户定义</td>
      <td><span class="function"><a href="function.uasort.html" class="function">uasort()</a></span></td>
     </tr>

     <tr>
      <td><span class="function"><a href="function.usort.html" class="function">usort()</a></span></td>
      <td>值</td>
      <td>否</td>
      <td>由用户定义</td>
      <td><span class="function"><a href="function.uasort.html" class="function">uasort()</a></span></td>
     </tr>

    </tbody>
   
  </table>

 </p>
</div>
</div></div></body></html>